Business systems may be described as computer systems programmed to facilitate a business transaction or function. For example, a computer may be programmed to accept input from a user and to detect events as they occur in a particular environment to account for transactions and report a log of transaction events. These reports may be used by management to distill information about a business operation or to modify various aspects of a business for improved efficiency. For example, an inventory management system may be comprised of a computer that is programmed to verify transactions, to record product as it is received into inventory, and to update product accumulations upon the exit of product from the inventory. Data used for these transactions may be entered through a keyboard or through a barcode reader and the like. This system may subsequently generate one or more reports to inform management of current inventory levels and the volume levels of transactions that have occurred.
Another commonly encountered business system is a checkout station, which is typically used at retail point-of-sale locations. These point-of-sale (POS) stations may be as simple as an electronic cash register or as complex as a self-checkout station. The more complex POS systems include a keypad for entry of commands from an operator, sensors for reading barcodes and weighing items, and databases and communication equipment for reading and storing data as well as communicating data to remote sites, respectively. These POS systems are well known. At these POS stations, articles for purchase are scanned so they may be identified. The terminals enable prices to be retrieved from a central repository to support more flexible article pricing. When all items for purchase have been presented at a POS terminal, a subtotal is accumulated, any taxes or discounts are computed, and a total amount due is displayed for the consumer. The POS terminal or station may also include a cash register function, a credit or debit card reader, or a smart card interface for processing payment for the transaction. Upon confirmation of the tendered payment, the articles are released to the consumer. Once a sale is consummated, the station may communicate with an inventory management system to update inventory for the sold items.
A POS checkout station typically includes a terminal, a scanner/scale for reading unit price codes (UPC) and determining article weight, a cashier key pad and display, a POS terminal for payment entry, a receipt printer, a change unit, and a checkout area for holding articles once they have been scanned. The POS terminal also includes a display, a processor, memory, programmed instructions, and data peripherals to control the operations of the station. The programmed instructions may contain modules that query a database for article prices, compute totals, and perform other functions related to the purchase of articles through the checkout station. Some checkout stations may also include a security application program that uses data from sensors such as scales and/or cameras, to reduce the likelihood that improper article substitution occurs during checkout.
Checkout stations are manufactured by a number of different companies. While the operations of POS systems are generally alike, each manufacturer implements the program code to perform the transactions differently. For example, the codes generated by keys in the key pads or the interfaces with sensor systems may be implemented in slightly different manners from manufacturer to manufacturer. Consequently, the programming executed by the processor or processors of a POS system differs from manufacturer to manufacturer.
Rather than having one single program that implements all the functionality required for a checkout station, most manufacturers implement a POS system controller with some type of modular programming. In modular programming, the business logic implemented by the POS system is segmented into subfunctions. These sub-functions may be implemented as discrete programming objects or modules. These modules or objects are provided with input data which the object or modules process to produce output. This modular approach to programming is used to facilitate maintenance of the computer program and to compartmentalize the functionality of the system so it may be modified to incorporate new functions more easily.
While the modules and objects discussed above do facilitate program maintenance and adaptability, they are typically coupled together in a hierarchical structure to implement a transaction or other business process. The hierarchy and control logic used to couple the modules together is also implemented in a programming language. The programming statements that implement the control logic and hierarchy form a framework for the POS system. These program statements must be compiled and installed on a computer in order to control the execution of the program objects and modules used to implement the various subfunctions of the POS system. Implementing all the control logic of the POS system in this manner is contrary to the principles of modular programming. In the event that the control logic must change to process transactions, the programming statements for the business logic must be revised, re-complied, and re-installed on the computer that implements the POS system. Additionally, the changes must be reprogrammed in a manner that is compatible with the manufacturer's platform on which the programming logic executes. That is, the business logic must be modified in a way that is compatible with the manufacturer's implementation of the sub-functions. Thus, modification of the control logic that performs the business logic for a POS system requires careful attention to the hardware environment for the system and the programming language used to implement the system.